Hàm qsort() trong C
Hàm void qsort(void *base, so-phan-tu, kich-co, int (*compar)(const void *, const void*)) sắp xếp một mảng.
Hàm qsort() là viết tắt của Quick Sort, được viết dựa trên giải thuật Sắp xếp nhanh (Quick Sort).
Khai báo hàm qsort() trong C
Dưới đây là phần khai báo cho qsort() trong C:
void qsort(void *base, so-phan-tu, kich-co, int (*compar)(const void *, const void*))
Tham số
base: Đây là con trỏ tới phần tử đầu tiên của mảng cần được sắp xếp.
so-phan-tu: Đây là số phần tử trong mảng được trỏ bởi con trỏ base.
kich-co: Đây là kích cỡ (bằng byte) của mỗi phần tử trong mảng.
compar: Hàm so sánh hai phần tử.
Trả về giá trị
Hàm này không trả về bất cứ giá trị nào.
Ví dụ
Chương trình C sau minh họa cách sử dụng của qsort() trong C:
#include <stdio.h>
#include <stdlib.h>
int values[] = { 88, 56, 100, 2, 25 };
int cmpfunc (const void * a, const void * b)
{
return ( *(int*)a - *(int*)b );
}
int main()
{
int n;
printf("Truoc khi sap xep, list co dang: \n");
for( n = 0 ; n < 5; n++ )
{
printf("%d ", values[n]);
}
qsort(values, 5, sizeof(int), cmpfunc);
printf("\nSau khi sap xep, list co dang: \n");
for( n = 0 ; n < 5; n++ )
{
printf("%d ", values[n]);
}
return(0);
}
Biên dịch và chạy chương trình C trên sẽ cho kết quả:

Theo Tutorialspoint
Bài trước: Hàm bsearch() trong C
Bài tiếp: Hàm abs() trong C
Source: https://quantrimang.com/hoc/ham-qsort-trong-c-157970